package com.sky.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

/**
 * redis配置类！
 * 可以不写，但是数据库中的key是乱码
 * 不要把value也一并序列化！
 */

@Configuration
@Slf4j
public class RedisConfiguration {
    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory) {
        log.info("初始化redisTemplate");
        RedisTemplate redisTemplate = new RedisTemplate();
        /**
         * 核心代码：设置redisTemplate的序列化
         * 注入时，选择注入自己定义的Template
         * 指挥改key的序列化
         * 如果把value也一并序列化，那么后续无法自动进行数据类型转化！
         * 不推荐把value也一并序列化！
         */
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setConnectionFactory(connectionFactory);
        return redisTemplate;
    }
}
